`:top
`!wxPython`! est une implémentation libre en `F33f`_`[Python`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Python_(langage)]`_`f de l'`F33f`_`[interface de programmation`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Interface_de_programmation]`_`f `F33f`_`[wxWidgets`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=WxWidgets]`_`f. Cette bibliothèque Python est utilisée pour la création d'`F33f`_`[interfaces graphiques`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Interface_graphique]`_`f, et est l'alternative de `F33f`_`[Tkinter`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Tkinter]`_`f la plus utilisée.
wxPython est `F33f`_`[multiplate-forme`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Multiplate-forme]`_`f, et le même logiciel peut être exécuté sur `F33f`_`[Windows`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Microsoft_Windows]`_`f, `F33f`_`[UNIX`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=UNIX]`_`f et apparentés, et `F33f`_`[MacOS`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=MacOS]`_`f sans modification. Pour la création et gestion des `F33f`_`[widgets`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Composant_d'interface_graphique]`_`f, l'interface de programmation du `F33f`_`[système d'exploitation`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Système_d'exploitation]`_`f hôte est utilisée le plus possible, ce qui donne une apparence native à l'application.
wxPython essaie d'unir la simplicité et la lecture facile de Python avec une `F33f`_`[interface de programmation`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Interface_de_programmation]`_`f très complète. Ceci donne un `F33f`_`[cycle de développement`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Cycle_de_développement_(logiciel)]`_`f rapide tout en permettant une grande complexité si nécessaire.
Pour pouvoir utiliser les logiciels qui utilisent cette bibliothèque, il est d'abord nécessaire de la télécharger et de l'installer sur le système, en plus de l'installation de Python, à moins de recevoir le logiciel sous forme de `F33f`_`[fichiers binaires`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Fichier_binaire]`_`f.
>>Contents
• `F0af`_`[Histoire`#histoire]`_`f
• `F0af`_`[Licence`#licence]`_`f
• `F0af`_`[Exemple`#exemple]`_`f
• `F0af`_`[Références`#r-f-rences]`_`f
• `F0af`_`[Liens externes`#liens-externes]`_`f
-─
>>Histoire
wxPython est né quand Robin Dunn eut besoin d'une `F33f`_`[interface utilisateur graphique`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Interface_utilisateur_graphique]`_`f qui devait être déployée sous `F33f`_`[HP-UX`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=HP-UX]`_`f et aussi `F33f`_`[Windows 3.1`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Windows_3.1]`_`f en quelques semaines. Pendant l'évaluation de solutions commerciales, il trouva des `F33f`_`[bindings`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Binding]`_`f en Python pour la boite à outils wxWidgets. Donc il apprit Python et, bientôt, devint un des principaux `F33f`_`[développeurs`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Développeur]`_`f de wxPython (qui grandit de ces bindings d'origine), avec Harri Pasanen. Les premières versions du `F33f`_`[wrapper`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Adaptateur]`_`f étaient codées à la main mais le `F33f`_`[code`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Code_source]`_`f devint rapidement très difficile à garder synchronisé avec les versions de wxWidgets. Par contre, les versions plus récentes sont créées avec `F33f`_`[SWIG`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=SWIG]`_`f, ce qui réduit considérablement le travail nécessaire aux mises à jour. La première version « moderne » fut annoncée en 1998[1](en).
>>Licence
wxPython est publié sous la licence wxWindows Library, qui est basée sur la `F33f`_`[LGPL`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=LGPL]`_`f mais qui permet la distribution d'œuvres dérivées sous n'importe quelle licence.
>>Exemple
`B100`F9d9#!/usr/bin/env python`f`b
`B100`F9d9# -*- coding: utf-8 -*-`f`b
`B100`F9d9`f`b
`B100`F9d9# Importation du paquet wxPython`f`b
`B100`F9d9import wx`f`b
`B100`F9d9`f`b
`B100`F9d9# Création d'un nouveau cadre, dérivé du wxPython 'Frame'.`f`b
`B100`F9d9class TestFrame(wx.Frame):`f`b
`B100`F9d9 def __init__(self, parent, ID, title):`f`b
`B100`F9d9 wx.Frame.__init__(self, parent, -1, title, pos=(-1, -1), size=(200, 100))`f`b
`B100`F9d9`f`b
`B100`F9d9 # À l'intérieur du cadre, créer un panneau..`f`b
`B100`F9d9 panel = wx.Panel(self, -1)`f`b
`B100`F9d9`f`b
`B100`F9d9 # Créer un texte dans le panneau`f`b
`B100`F9d9 texte = wx.StaticText(panel, -1, "Bonjour tout le monde!", wx.Point(10, 5), wx.Size(-1, -1))`f`b
`B100`F9d9`f`b
`B100`F9d9 # Créer un bouton dans le panneau`f`b
`B100`F9d9 bouton = wx.Button(panel, -1, "Cliquez-moi!", wx.Point(10, 35), wx.Size(-1, -1))`f`b
`B100`F9d9 # lier le bouton à une fonction:`f`b
`B100`F9d9 self.Bind(wx.EVT_BUTTON, self.creerDiag, bouton)`f`b
`B100`F9d9`f`b
`B100`F9d9 # fonction qui affiche une boîte de dialogue`f`b
`B100`F9d9 def creerDiag(self, event):`f`b
`B100`F9d9 dlg = wx.MessageDialog(self, "Merci de m'avoir cliqué, ça fait du bien.",`f`b
`B100`F9d9 "Merci!", wx.ICON_EXCLAMATION | wx.YES_NO | wx.CANCEL)`f`b
`B100`F9d9 dlg.ShowModal()`f`b
`B100`F9d9 dlg.Destroy()`f`b
`B100`F9d9`f`b
`B100`F9d9`f`b
`B100`F9d9# Chaque application wxWidgets doit avoir une classe dérivée de wx.App`f`b
`B100`F9d9class TestApp(wx.App):`f`b
`B100`F9d9 def OnInit(self):`f`b
`B100`F9d9 frame = TestFrame(None, -1, "Test")`f`b
`B100`F9d9 self.SetTopWindow(frame)`f`b
`B100`F9d9 frame.Show(True)`f`b
`B100`F9d9 return True`f`b
`B100`F9d9`f`b
`B100`F9d9if __name__ == '__main__':`f`b
`B100`F9d9 app = TestApp(0) # créer une nouvelle instance de l'application`f`b
`B100`F9d9 app.MainLoop() # lancer l'application`f`b
En voici le résultat:
>>Références
`:cite-note-wikidata-6b66cd700b0e9a64ba3f586de54ce654b415d6ea-1`!1.`! « https://wxpython.org/news/2025-04-09-wxpython-423-release/ »
>>Liens externes
• (en) Site Officiel de wxPython
• (en) Site Officiel de wxWidgets
• Construire une interface graphique pas à pas avec TkInter et wxPython
• Portail des logiciels libres
• Portail de l’informatique
• Portail de la programmation informatique
`c`F0af`_`[↑ Back to top`#top]`_`f`a